perm filename MONOP.F4[DKH,LCS] blob sn#140128 filedate 1975-01-10 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	CC	ATTEMPT AT CONSTRUCTING A MONOPOLY GAME
C00058 ENDMK
CāŠ—;
CC	ATTEMPT AT CONSTRUCTING A MONOPOLY GAME
CC	DAVID HOFFMAN / COLGATE UNIVERSITY / JULY 1973

CC	INITIALIZATION
	IMPLICIT INTEGER(A-Q,S-Y)
	DIMENSION ZSQRE(3,0/39),JAIL(5),LOC(5),MONEY(5),AUTPIL(5),
	1ASSETS(5),OTHPRP(2,2,4),NUMOTH(2,5),RNAME(0/5),NOJAIL(5),
	2MVALUE(5),TT(2)
	COMMON CARDS(2,16)/L/TNUM(3)/M/MOWN(5,8),CMONOP(6),CMPUTR
	1/K/PROP(11,22)
	DATA ZSQRE/'GO',' ',' ','MEDIT','ERRAN','. AVE','COMMU',
	1'NITY ','CHEST','BALTI','C AVE',' ','INCOM','E TAX',' ',
	2'READI','NG RR',' ','ORIEN','TAL A','VE','CHANC','E',' ',
	3'VERMO','NT AV','E','CONNE','CTICU','T AVE','JAIL',' ',' ',
	4'ST CH','ARLES',' PL','ELECT','RIC C','O','STATE','S AVE',' ',
	5'VIRGI','NIA A','VE','PENN.',' RR',' ','ST JA','MES P','L',
	6'COMMU','NITY ','CHEST','TENNE','SSEE ','AVE','NEW Y','ORK A',
	7'VE','FREE ','PARKI','NG','KENTU','CKY A','VE','CHANC','E',' ',
	8'INDIA','NA AV','E','ILLIN','OIS A','VE','B & O',' RR',' ',
	9'ATLAN','TIC A','VE','VENTN','OR AV','E','WATER',' WORK','S',
	1'MARVI','N GAR','DENS','GO TO',' JAIL',' ','PACIF','IC AV','E',
	2'N CAR','OLINA',' AVE','COMMU','NITY ','CHEST','PENN.',' AVE',
	3' ','SHORT',' LINE',' RR','CHANC','E',' ','PARK ','PLACE',' ',
	4'LUXUR','Y TAX',' $75','BOARD','WALK',' '/
	DATA PROP/1,60,0,2,10,30,90,160,250,0,0,3,60,0,4,20,60,180,320,
     1450,0,0,6,100,0,6,30,90,270,400,550,0,0,8,100,0,6,30,90,270,400,
     1550,0,0,9,120,0,8,40,100,300,450,600,0,0,11,140,0,10,50,150,450,
     1625,750,0,0,13,140,0,10,50,150,450,625,750,0,0,14,160,0,12,60,
     1180,500,700,900,0,0,16,180,0,14,70,200,550,750,950,0,0,18,180,
     10,14,70,200,550,750,950,0,0,19,200,0,16,80,220,600,800,1000,0,0,
     121,220,0,18,90,250,700,875,1050,0,0,23,220,0,18,90,250,700,875,
     11050,0,0,24,240,0,20,100,300,750,925,1100,0,0,26,260,0,22,110,
     1330,800,975,1150,0,0,27,260,0,22,110,330,800,975,1150,0,0,29,
     1280,0,24,120,360,850,1025,1200,0,0,31,300,0,26,130,390,900,1100,
     11275,0,0,32,300,0,26,130,390,900,1100,1275,0,0,34,320,0,28,150,
     1450,1000,1200,1400,0,0,37,350,0,35,175,500,1100,1300,1500,0,0,
     139,400,0,50,200,600,1400,1700,2000,0,0/
	DATA DSK/1/,MFLAG/0/,CMPUTR/0/,CMONOP/6*0/,FRPARK/0/,
	1RNAME/' ',5*0/,LOC/5*0/,MVALUE/5*0/,AUTPIL/5*0/,JAIL/5*0/,
	2MOWN/5*1,30*0,5*1/,NOJAIL/5*0/,MONEY/5*1500/,ASSETS/5*0/,
	3NUMOTH/10*0/,OTHPRP/16*0/,TIMER/1/
	CALL TIME(N,X)
	X=IABS(N)-IABS(X)
	ZANS=SETRAN(X)
	TYPE 5
5	FORMAT(' WELCOME TO COLGATE''S AUTOMATED MONOPOLY (V 17)'/)
	CALL CHKOLD(K)
	IF(K.EQ.0)GO TO 10
	TYPE 7
7	FORMAT(' I SEE YOU''VE SAVED A GAME FROM LAST TIME.'/
	1' DO YOU WANT TO PLAY (1) THE OLD ONE OR (2) A NEW ONE: '$)
	ACCEPT 166,ANS
	IF(ANS.NE.1)GO TO 10
	CALL IFILE(DSK,'MONOP')
	READ(DSK)MFLAG,CMPUTR,FRPARK,NOPLYR,CMONOP,RFREE,DOUBLE,PTIME,
	1CANTPL,JAIL,LOC,NOJAIL,MONEY,ASSETS,MVALUE,OTHPRP,NUMOTH,RNAME
	2,TIMER,CARDS,MOWN,PLYR,(PROP(3,N),PROP(10,N),PROP(11,N),N=1,22)
	CALL DELFIL
	GO TO 108

10	DO 30 X=1,2
	DO 30 K=1,16
20	M=RAN(X)*16+1
	IF(K.EQ.1)GO TO 30
	DO 25 J=1,K-1
	IF(M.EQ.CARDS(X,J))GO TO 20
25	CONTINUE
30	CARDS(X,K)=M
60	TYPE 61
61	FORMAT(' HOW MANY HUMAN PLAYERS (1 TO 4)? ',$)
	ACCEPT 166,NOPLYR
	IF(NOPLYR.LT.1.OR.NOPLYR.GT.4)GO TO 60
	DO 70 K=1,NOPLYR
	TYPE 63,K
63	FORMAT(' YOUR NAME, PLAYER ',I1,': ',$)
65	ACCEPT 66,RNAME(K),ZANS
66	FORMAT(2A5)
	IF(ZANS.EQ.'     ')GO TO 70
	TYPE 68
68	FORMAT(' HOW ABOUT A NICKNAME OF UNDER 6 LETTERS: ',$)
	GO TO 65
70	CONTINUE
	IF(NOPLYR.EQ.1)GO TO 73
	TYPE 72
72	FORMAT(' DO YOU WANT ME TO PLAY? ',$)
	ACCEPT 414,ZANS
	IF(ZANS.NE.'Y')GO TO 74
73	NOPLYR=NOPLYR+1
	RNAME(NOPLYR)='PDP10'
	CMPUTR=NOPLYR
74	TYPE 75
75	FORMAT(' ROLL TO SEE WHO GOES FIRST:'/)
77	DO 86 K=1,NOPLYR
	TROLL1=6.*RAN(X)+1.
	TROLL2=6.*RAN(X)+1.
	TYPE 80,RNAME(K),TROLL1,TROLL2
80	FORMAT(1X,A5,': YOU ROLL ',I1,' AND ',I1)
	IF(K.EQ.1)IANS=TROLL1+TROLL2
	IF(K.EQ.1.OR.TROLL1+TROLL2.NE.IANS)GO TO 84
	TYPE 82
82	FORMAT(' TIE. REROLL:')
	GO TO 77
84	IF(TROLL1+TROLL2.LT.IANS)GO TO 86
	ANS=K
	IANS=TROLL1+TROLL2
86	CONTINUE
	TYPE 88,RNAME(ANS)
88	FORMAT(/' YOU GO FIRST, ',A5)
	PLYR=ANS-1
	TYPE 90
90	FORMAT(/' DO YOU WANT A POT ON FREE PARKING? ',$)
	ACCEPT 414,RFREE

100	OLDPL=CANTPL
	CANTPL=.FALSE.
	IF(DOUBLE.NE.1)GO TO 1005
	IF(MONEY(PLYR).LT.0)GO TO 1007
	IF(OLDPL)180,108
1005	IF(AUTPIL(PLYR).NE.0)AUTPIL(PLYR)=MOD(AUTPIL(PLYR)+1,11)
	PTIME=0
	IF(TIMER.EQ.1)GO TO 106
1007	TYPE 101,MONEY(PLYR)
101	FORMAT(' CASH LEFT = $',I5)
	IF(MONEY(PLYR).GE.0)GO TO 106
C	DOESN'T WORK YET...
C	IF(MVALUE(PLYR).GE.0-MONEY(PLYR).OR.NOPLYR.GT.2)GO TO 103
C	TYPE 102
C102	FORMAT(' YOU ARE IN DEBT AND CANNOT COVER YOUR LOSSES.'/
C	1' YOU RETIRE FROM THE GAME.'/)
C	IF(PLYR.EQ.1)RNAME(1)=RNAME(2)
C	GO TO 1000
103	TYPE 104
104	FORMAT(' YOU ARE IN DEBT. YOU MUST RECTIFY THE SITUATION,
	1 OR QUIT.')
	CANTPL=.TRUE.
	AUTPIL(PLYR)=0
	GO TO 111
106	TIMER=2
	PLYR=PLYR+1
	IF(PLYR.GT.NOPLYR)PLYR=1
108	TYPE 109,RNAME(PLYR)
109	FORMAT(//1X,A5,':')
111	TYPE 112
112	FORMAT(' INSTRUCTIONS: ',$)
	IF(AUTPIL(PLYR).NE.0)TYPE 113
113	FORMAT('+*'$)
	STRAT=0
	IF(AUTPIL(PLYR).NE.0)GO TO 161
	IF(PLYR.NE.CMPUTR)GO TO 165
	IF(.NOT.CANTPL)GO TO 135
	IF(MONEY(PLYR).GE.0)GO TO 161
	MFLAG=1
	DO 114 K=1,22
	IF(PROP(3,K).NE.CMPUTR)GO TO 114
	IF(MCHECK(PLYR,K).EQ.0.OR.PROP(11,K).EQ.1)GO TO 114
	IANS=K
	STRAT=4
	GO TO 161
114	CONTINUE
	DO 116 J=1,2
	DO 116 K=1,4
	IF(J.EQ.2.AND.K.EQ.3)GO TO 118
	IF(OTHPRP(J,1,K).NE.PLYR)GO TO 116
	IF(OTHPRP(J,2,K).EQ.1)GO TO 116
	IANS=K+22+(J-1)*4
	STRAT=4
	GO TO 161
116	CONTINUE
118	IF(CMONOP(1).EQ.0)GO TO 130

CC	CHECK FOR LAST CHANCE HOUSE SELLING
	IF(CMONOP(5).EQ.0)GO TO 124
	IF(CMONOP(5).NE.CMONOP(2)*5)GO TO 122
	MONOP=(CMONOP(3)+3)/3
	CMONOP(3)=(MONOP-1)*3
	IF(CMONOP(3).EQ.0)CMONOP(3)=1
120	CMONOP(6)=-1
122	IF(CMONOP(6).EQ.1)CALL BUYSELL
	STRAT=7
	ANS=2
	J=0
	DO 123 K=1,5
	IF(CMONOP(5).LT.CMONOP(2)*K.OR.MONEY(PLYR)+(CMONOP(2)*K-1)
	1*CMONOP(4)/2.GE.0)GO TO 161
123	J=K
	GO TO 161
124	DO 126 K=1,8
	IF(MCHECK(PLYR,K*3-2).EQ.0)GO TO 128
126	CONTINUE
	GO TO 130
128	CMONOP(1)=0
	CALL MONCOM(K)
	CMONOP(5)=CMONOP(2)*5
	CMONOP(3)=CMONOP(3)-CMONOP(2)+1
	GO TO 120

130	TYPE 131
131	FORMAT(' I QUIT!')
	GO TO 993
135	IF(JAIL(PLYR).EQ.0)GO TO 139
	IANS=0
	DO 137 K=1,22
137	IF(PROP(3,K).NE.0)IANS=IANS+1
	IF(IANS.LT.17)STRAT=6
139	IF(MONEY(PLYR).LT.250)GO TO 161
	IF(MFLAG.EQ.1.AND.MVALUE(PLYR).LT.450)GO TO 155
	IF(CMONOP(1).NE.0)GO TO 143
	DO 141 K=1,8
141	CALL MONCOM(K)
	IF(CMONOP(1).EQ.0)GO TO 155
	GO TO 147
143	IF(CMONOP(5).NE.CMONOP(2)*5)GO TO 149
	CMONOP(1)=0
	DO 145 K=1,8
145	IF(MCHECK(PLYR,K*3-2).NE.0)CALL MONCOM(K)
	IF(CMONOP(1).NE.0)GO TO 147
	CMONOP(1)=1
	GO TO 155
147	CMONOP(5)=0
	CMONOP(6)=1
149	IF(CMONOP(6).EQ.-1)CALL BUYSELL
	IF(CMONOP(5).NE.0)GO TO 152
	DO 151 IANS=CMONOP(3),CMONOP(3)-CMONOP(2)+1,-1
	IF(PROP(11,IANS).EQ.1)GO TO 157
151	CONTINUE
152	IF(MONEY(PLYR).LT.CMONOP(4)+50)GO TO 155
	STRAT=7
	ANS=1
	J=0
	DO 153 K=1,5
	X=CMONOP(2)*K
	IF(MONEY(PLYR).LE.CMONOP(4)*X+50.OR.
	1CMONOP(5)+X.GT.CMONOP(2)*5)GO TO 161
153	J=K
	GO TO 161
155	IF(NUMOTH(1,PLYR).LT.3)GO TO 1565
	DO 156 K=1,4
	IF(OTHPRP(1,1,K).NE.PLYR.OR.OTHPRP(1,2,K).EQ.0)GO TO 156
	IANS=K+22
	GO TO 157
156	CONTINUE
1565	DO 158 K=22,1,-1
	IF(PROP(11,K).EQ.0.OR.PROP(3,K).NE.PLYR)GO TO 158
	IANS=K
157	STRAT=5
	GO TO 161
158	CONTINUE
	DO 160 J=2,1,-1
	DO 160 K=4,1,-1
	IF((J.EQ.2.AND.K.GT.2).OR.OTHPRP(J,1,K).NE.PLYR.OR.
	1OTHPRP(J,2,K).NE.1)GO TO 160
	IANS=K+22+(J-1)*4
	GO TO 157
160	CONTINUE
	MFLAG=0

161	IF(STRAT.EQ.0)STRAT=1
	CALL SLP(1250)
	TYPE 163,STRAT
163	FORMAT('+',I1)
	GO TO 167
165	READ(5,166)STRAT
166	FORMAT(I)
	IF(STRAT.NE.0)GO TO 1665
	REREAD 414,ZANS
	IF(ZANS.EQ.'H')GO TO 169
	TYPE 1662
1662	FORMAT(' TYPE H FOR HELP')
	GO TO 111
1665	IF(STRAT.NE.12)GO TO 167
	AUTPIL(PLYR)=1
	STRAT=1
167	IF(CANTPL.AND.STRAT.EQ.1)STRAT=0
	IF(STRAT.GT.12)STRAT=STRAT-1
C	GO TO (100,180,600,700,800,850,890,900,990,250,603,470,690,660)
	GO TO (100,180,600,700,800,850,890,900,990,250,603,470,690,760)
	1,STRAT+1
169	TYPE 170
170	FORMAT(' 1 ROLL DICE / END TURN',T27,'2 LIST ASSETS'/
	1' 3 EXCHANGE OR SELL PROPERTY'/
	2' 4 MORTGAGE',T17,'5 UNMORTGAGE PROPERTY'/
	3' 6 GET OUT OF JAIL',3X,'7 BUY & SELL HOUSES & HOTELS'/
	4' 8 QUIT',T17,'9 SAVE GAME FOR LATER'/
	5' 10 LIST ANOTHER PLAYER''S ASSETS OR BOARD MAP'/
	6' 11 SHOW ALL PLAYERS'' POSITIONS AND CURRENT PLAYER'/
	7' 12 SET "AUTOMATIC PILOT" TO ROLL DICE FOR 10 MOVES'/
	8' 13 STATUS OF THIS MONOPOLY',4X,'14 DISPLAY PROPERTY CARD')
C	8' 13 ASK COMPUTER TO MAKE TRADING OFFER')

	GO TO 111

CC	ROLL DICE

180	DOUBLE=0
	FACTOR=1
	FACT2=0
	PTIME=PTIME+1
	TROLL1=6.*RAN(X)+1.
	TROLL2=6.*RAN(X)+1.
	IF(TROLL1.EQ.TROLL2)DOUBLE=1
	TYPE 182,TROLL1,TROLL2
182	FORMAT(' YOU ROLLED ',I1,' AND ',I1)
	IF(DOUBLE.NE.1.OR.PTIME.NE.3)GO TO 186
	TYPE 184
184	FORMAT(' YOU GO TO JAIL FOR 3 DOUBLES')
	DOUBLE=0
	GO TO 230
186	IF(JAIL(PLYR).EQ.0)GO TO 201
	IF(DOUBLE.NE.1)GO TO 188
	JAIL(PLYR)=0
	GO TO 201
188	IF(JAIL(PLYR).EQ.3)GO TO 192
	JAIL(PLYR)=JAIL(PLYR)+1
	TYPE 190
190	FORMAT(' STILL IN JAIL')
	GO TO 100
192	JAIL(PLYR)=0
	IF(NOJAIL(PLYR).EQ.0)GO TO 198
	TYPE 194
194	FORMAT(' YOUR "GET OUT OF JAIL FREE" CARD HAS BEEN USED')
	CALL TURNIN(NOJAIL(PLYR))
	GO TO 201
198	TYPE 199
199	FORMAT(' YOU PAY COMPULSORY $50 TO LEAVE JAIL')
	MONEY(PLYR)=MONEY(PLYR)-50
	FRPARK=FRPARK+50
201	LOC(PLYR)=LOC(PLYR)+TROLL1+TROLL2
	IF(LOC(PLYR).GE.40)CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
203	TYPE 204,(ZSQRE(N,LOC(PLYR)),N=1,3)
204	FORMAT(' YOU LAND ON ',3A5)
	GO TO (100,400,501,400,215,300,400,500,400,400,100,
	1400,302,400,400,300,400,501,400,400,210,
	1400,500,400,400,300,400,400,302,400,230,
	1400,400,501,400,300,500,400,232,400),LOC(PLYR)+1

CC	FREE PARKING
210	AMT=FRPARK
	FRPARK=0
	IF(RFREE.NE.'Y')GO TO 100
	TYPE 1317,AMT
1317	FORMAT(' YOU PICK UP $',I5)
	MONEY(PLYR)=MONEY(PLYR)+AMT
	GO TO 100

CC	INCOME TAX
215	TYPE 216
216	FORMAT(' (1) PAY 10% OR (2) PAY $200? ',$)
	IF(PLYR.NE.CMPUTR)GO TO 218
	TPCNT=(MONEY(PLYR)+ASSETS(PLYR))/10
	IANS=1
	IF(TPCNT.GE.215)IANS=2
CC	SO AS NOT TO GIVE THE COMPUTER AN UNFAIR ADVANTAGE
	IF(TPCNT.GT.185.AND.TPCNT.LT.215)IANS=RAN(X)*2.+1.
	CALL SLP(1000)
	TYPE 163,IANS
	GO TO (220,224),IANS
218	ACCEPT 166,IANS
	IF(IANS.NE.1.AND.IANS.NE.2)GO TO 215
	IF(IANS.EQ.2)GO TO 224
	TPCNT=(MONEY(PLYR)+ASSETS(PLYR))/10
220	TYPE 221,TPCNT
221	FORMAT(' YOU PAY 10% = $',I4)
	MONEY(PLYR)=MONEY(PLYR)-TPCNT
	FRPARK=FRPARK+TPCNT
	GO TO 100
224	MONEY(PLYR)=MONEY(PLYR)-200
	FRPARK=FRPARK+200
	GO TO 100

CC	GO TO JAIL SQUARE
230	JAIL(PLYR)=1
	LOC(PLYR)=10
	DOUBLE=0
	GO TO 100
CC	LUXURY TAX
232	MONEY(PLYR)=MONEY(PLYR)-75
	FRPARK=FRPARK+75
	GO TO 100

CC	ACTION 9 SAVE GAME FOR LATER
250	TYPE 252
252	FORMAT(' SO YOU WANT TO SAVE THE GAME FOR LATER? '$)
	ACCEPT 414,ZANS
	IF(ZANS.NE.'Y')GO TO 111
	CALL OFILE(DSK,'MONOP')
	WRITE(DSK)MFLAG,CMPUTR,FRPARK,NOPLYR,CMONOP,RFREE,DOUBLE,PTIME,
	1CANTPL,JAIL,LOC,NOJAIL,MONEY,ASSETS,MVALUE,OTHPRP,NUMOTH,RNAME
	2,TIMER,CARDS,MOWN,PLYR,(PROP(3,N),PROP(10,N),PROP(11,N),N=1,22)
	TYPE 255
255	FORMAT(' JOB SAVED. SEE YOU SOON.')
	STOP

CC	RRS AND UTILS
300	IP=(LOC(PLYR)+5)/10
	X=1
	GO TO 306
302	IP=LOC(PLYR)/12
	X=2
306	IF(OTHPRP(X,1,IP).EQ.PLYR)GO TO 100
	IF(OTHPRP(X,1,IP).NE.0)GO TO 323
308	AMT=50*(5-X)
	IF(MONEY(PLYR).LT.AMT)TYPE 310,MONEY(PLYR)
310	FORMAT(' CASH ON HAND = $',I4)
	F1=1
312	TYPE 313,AMT
313	FORMAT(' PRICE $',I3,'. BUY? ',$)
	IF(PLYR.NE.CMPUTR)GO TO 411
	ZANS='Y'
	IF(MONEY(PLYR).LT.AMT.AND.MFLAG.EQ.1.AND.MVALUE(PLYR).LT.450)
	1ZANS='N'
	CALL SLP(1000)
	TYPE 315,ZANS
315	FORMAT('+',A1)
	GO TO 416
320	OTHPRP(X,1,IP)=PLYR
	NUMOTH(X,PLYR)=NUMOTH(X,PLYR)+1
	GO TO 418

323	IF(OTHPRP(X,2,IP).EQ.1)GO TO 100
	TPLYR=OTHPRP(X,1,IP)
	ARENT=FACTOR*25*2**(NUMOTH(1,TPLYR)-1)
	IF(X.EQ.1)GO TO 325
	IF(NUMOTH(2,TPLYR).EQ.2)FACT2=6
	ARENT=(TROLL1+TROLL2)*(FACT2+4)
325	TYPE 452,ARENT,RNAME(TPLYR)
	MONEY(PLYR)=MONEY(PLYR)-ARENT
	MONEY(TPLYR)=MONEY(TPLYR)+ARENT
	GO TO 100

CC	DOESN'T WANT TO BUY -- AUCTION?
330	GO TO 100

CC	PROPS
400	DO 402 X=1,22
	IF(LOC(PLYR).EQ.PROP(1,X))GO TO 405
402	CONTINUE
405	MONOP=(X+3)/3
	IF(PROP(3,X).NE.0)GO TO 450
	F1=2
	IF(MONEY(PLYR).LT.PROP(2,X))TYPE 310,MONEY(PLYR)
407	TYPE 313,PROP(2,X)
	IF(PLYR.NE.CMPUTR)GO TO 411
	ZANS='Y'
	IF(MONOP.EQ.1.OR.MONOP.EQ.8)GO TO 409
	IP=(MONOP-1)*3
	IF(PROP(3,IP).NE.PROP(3,IP+1).AND.
	1PROP(3,IP+1).NE.PROP(3,IP+2).AND.
	2PROP(3,IP).NE.PROP(3,IP+2).AND.
	3MONEY(PLYR).LT.500)ZANS='N'
409	IF(MONEY(PLYR).LT.PROP(2,X).AND.MFLAG.EQ.1.AND.
	1MVALUE(PLYR).LT.450.AND.MOWN(PLYR,MONOP).LT.2)ZANS='N'
	CALL SLP(1000)
	TYPE 315,ZANS
	GO TO 416
411	READ(5,166)ANS
	IF(ANS.EQ.0)GO TO 413
	IF(ANS.EQ.2)GO TO 600
	IF(ANS.EQ.10)GO TO 603
	IF(ANS.EQ.11)GO TO 470
	IF(ANS.EQ.13)GO TO 690
	IF(ANS.EQ.14)GO TO 760
	GO TO (312,407),F1
413	REREAD 414,ZANS
414	FORMAT(A1)
	IF(ZANS.EQ.'Y'.OR.ZANS.EQ.'N')GO TO 416
	TYPE 415
415	FORMAT(' Y = YES       N = NO       2 = LIST ASSETS'/
	1' 10 = LIST ANOTHER PLAYER''S ASSETS OR BOARD MAP'/
	6' 11 = SHOW ALL PLAYERS'' POSITIONS AND CURRENT PLAYER'/
	7' 13 = STATUS OF THIS MONOP',4X,'14 = DISPLAY PROPERTY CARD')
	GO TO (312,407),F1
416	F2=F1
	F1=0
	IF(ZANS.NE.'Y')GO TO (330,430),F2
	IF(F2.EQ.1)GO TO 320
	AMT=PROP(2,X)
	PROP(3,X)=PLYR
	MOWN(PLYR,MONOP)=MOWN(PLYR,MONOP)+1
418	MONEY(PLYR)=MONEY(PLYR)-AMT
	ASSETS(PLYR)=ASSETS(PLYR)+AMT
	MVALUE(PLYR)=MVALUE(PLYR)+AMT/2
	GO TO 100

CC	DOESN'T WANT TO BUY -- AUCTION?
430	GO TO 100

CC	ALREADY OWNED
450	IP=PROP(3,X)
	IF(IP.EQ.PLYR.OR.PROP(11,X).EQ.1)GO TO 100
	ARENT=PROP(4,X)
	IF(MOWN(IP,MONOP).EQ.3)ARENT=ARENT*2
	IF(PROP(10,X).GT.0)ARENT=PROP(PROP(10,X)+4,X)
	TYPE 452,ARENT,RNAME(IP)
452	FORMAT(' YOU PAY A RENT OF $',I4,' TO ',A5)
	MONEY(PLYR)=MONEY(PLYR)-ARENT
	MONEY(IP)=MONEY(IP)+ARENT
	GO TO 100

CC	ACTION 11 GIVE EVERYONE'S LOCATION
470	DO 476 K=1,NOPLYR
	ZANS=' '
	IF(K.EQ.PLYR)ZANS='*'
	J=LOC(K)/10+1
	IF(JAIL(K).NE.0)TYPE 472,ZANS,RNAME(K)
472	FORMAT(1X,A1,A5,': IN JAIL')
	IF(JAIL(K).EQ.0)TYPE 474,ZANS,RNAME(K),(ZSQRE(N,LOC(K)),
	1N=1,3),J
474	FORMAT(1X,A1,A5,': ON ',3A5,'(SIDE ',I1,')')
476	CONTINUE
	TYPE 478
478	FORMAT(' *CURRENT PLAYER')
	GO TO 639

CC	CHANCE AND COMMUNITY CHEST
500	X=1
	GO TO 505
501	X=2
505	CHOICE=CARDS(X,1)
	TYPE 507
507	FORMAT(' CARD: ',$)
	DO 510 K=1,15
510	CARDS(X,K)=CARDS(X,K+1)
	IF(CHOICE.NE.1)GO TO 512
	CARDS(X,16)=0
	GO TO 514
512	IF(CARDS(X,16).EQ.0)GO TO 513
	CARDS(X,16)=CHOICE
	GO TO 514
513	CARDS(X,15)=CHOICE
514	IF(X.EQ.1)GO TO (515,518,521,524,527,530,533,536,539,542,
	1545,548,551,554,557,551),CHOICE
	IF(X.EQ.2)GO TO (515,524,530,560,563,566,569,572,575,578,
	1581,584,587,590,593,596),CHOICE

CC	CHANCE & COMM CH
515	TYPE 516
516	FORMAT('+GET OUT OF JAIL FREE')
	NOJAIL(PLYR)=NOJAIL(PLYR)+1+9*(X-1)
	GO TO 100
518	TYPE 519
519	FORMAT('+PAY POOR TAX OF $15')
	MONEY(PLYR)=MONEY(PLYR)-15
	FRPARK=FRPARK+15
	GO TO 100
521	TYPE 522
522	FORMAT('+BANK PAYS DIVIDEND OF $50')
	MONEY(PLYR)=MONEY(PLYR)+50
	GO TO 100
524	TYPE 525
525	FORMAT('+GO DIRECTLY TO JAIL')
	GO TO 230
527	TYPE 528
528	FORMAT('+ADVANCE TO NEAREST UTILITY - PAY TEN TIMES ROLL')
	IP=12
	IF(LOC(PLYR).EQ.22)IP=28
	IF(LOC(PLYR).EQ.36)CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
	LOC(PLYR)=IP
	FACT2=6
	GO TO 203
530	TYPE 531
531	FORMAT('+ADVANCE TO GO')
	MONEY(PLYR)=MONEY(PLYR)+200
	LOC(PLYR)=0
	GO TO 100
533	TYPE 534
534	FORMAT('+ADVANCE TO READING RR')
	CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
	LOC(PLYR)=5
	GO TO 300
536	TYPE 537
537	FORMAT('+GO BACK 3 SPACES')
	LOC(PLYR)=LOC(PLYR)-3
	GO TO 203
539	TYPE 540
540	FORMAT('+ADVANCE TO ILLINOIS AVE.')
	IF(LOC(PLYR).EQ.36)CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
	LOC(PLYR)=24
	GO TO 400
542	TYPE 543
543	FORMAT('+ADVANCE TO ST CHARLES PLACE')
	IF(LOC(PLYR).NE.7)CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
	LOC(PLYR)=11
	GO TO 400
545	TYPE 546
546	FORMAT('+GENERAL REPAIRS - PAY $25 PER HOUSE, $100 PER HOTEL')
	F1=25
	F2=100
547	AMT=0
	DO 5475 K=1,22
	IF(PROP(3,K).NE.PLYR)GO TO 5475
	IF(PROP(10,K).EQ.5)AMT=AMT+F2
	IF(PROP(10,K).NE.5)AMT=AMT+F1*PROP(10,K)
5475	CONTINUE
	TYPE 5478,AMT
5478	FORMAT(' YOU PAY A TOTAL OF $',I4)
	MONEY(PLYR)=MONEY(PLYR)-AMT
	FRPARK=FRPARK+AMT
	GO TO 100
548	TYPE 549
549	FORMAT('+YOU ARE ELECTED CHAIRMAN, PAY EACH PLAYER $50')
	F2=-50
	GO TO 586
551	TYPE 552
552	FORMAT('+ADVANCE TO NEAREST RR AND PAY DOUBLE USUAL RENT')
	FACTOR=2
	IP=15
	IF(LOC(PLYR).EQ.22)IP=25
	IF(LOC(PLYR).NE.36)GO TO 553
	CALL PASSGO(PLYR,LOC(PLYR),MONEY(PLYR))
	IP=5
553	LOC(PLYR)=IP
	GO TO 203
554	TYPE 555
555	FORMAT('+BUILDING AND LOAN MATURES - COLLECT $150')
	MONEY(PLYR)=MONEY(PLYR)+150
	GO TO 100
557	TYPE 558
558	FORMAT('+ADVANCE TO BOARDWALK')
	LOC(PLYR)=39
	GO TO 400

CC	C CHEST
560	TYPE 561
561	FORMAT('+XMAS FUND MATURES - COLLECT $100')
562	MONEY(PLYR)=MONEY(PLYR)+100
	GO TO 100
563	TYPE 564
564	FORMAT('+BANK ERROR IN YOUR FAVOR - COLLECT $200')
	MONEY(PLYR)=MONEY(PLYR)+200
	GO TO 100
566	TYPE 567
567	FORMAT('+PAY SCHOOL TAX OF $150')
	MONEY(PLYR)=MONEY(PLYR)-150
	FRPARK=FRPARK+150
	GO TO 100
569	TYPE 570
570	FORMAT('+INCOME TAX REFUND - COLLECT $20')
	MONEY(PLYR)=MONEY(PLYR)+20
	GO TO 100
572	TYPE 573
573	FORMAT('+YOU WIN 2ND PRIZE IN BEAUTY CONTEST - COLLECT $10')
	MONEY(PLYR)=MONEY(PLYR)+10
	GO TO 100
575	TYPE 576
576	FORMAT('+RECEIVE FOR SERVICES $25')
	MONEY(PLYR)=MONEY(PLYR)+25
	GO TO 100
578	TYPE 579
579	FORMAT('+STREET REPAIRS - PAY $40 PER HOUSE, $115 PER HOTEL')
	F1=40
	F2=115
	GO TO 547
581	TYPE 582
582	FORMAT('+LIFE INSURANCE MATURES - COLLECT $100')
	GO TO 562
584	TYPE 585
585	FORMAT('+GRAND OPERA OPENING - COLLECT $50 FROM EACH PLAYER')
	F2=50
586	DO 5865 K=1,NOPLYR
5865	MONEY(K)=MONEY(K)-F2
	MONEY(PLYR)=MONEY(PLYR)+NOPLYR*F2
	GO TO 100
587	TYPE 588
588	FORMAT('+FROM SALE OF STOCK YOU GET $45')
	MONEY(PLYR)=MONEY(PLYR)+45
	GO TO 100
590	TYPE 591
591	FORMAT('+YOU INHERIT $100')
	GO TO 562
593	TYPE 594
594	FORMAT('+PAY HOSPITAL $100')
	MONEY(PLYR)=MONEY(PLYR)-100
	FRPARK=FRPARK+100
	GO TO 100
596	TYPE 597
597	FORMAT('+DOCTOR''S FEE - PAY $50')
	MONEY(PLYR)=MONEY(PLYR)-50
	FRPARK=FRPARK+50
	GO TO 100

CC	ACTION 2 REQUEST ASSETS
600	TPLYR=PLYR
	GO TO 610
603	TYPE 604
604	FORMAT(' 0 FREE PROPERTIES')
	DO 606 K=1,NOPLYR
606	IF(K.NE.PLYR)TYPE 710,K,RNAME(K)
	TYPE 608
608	FORMAT(' 6 BOARD MAP'/
	1' WHOSE ASSETS WOULD YOU LIKE TO SEE? #: ',$)
	ACCEPT 166,TPLYR
	IF(TPLYR.EQ.0)GO TO 614
	IF(TPLYR.EQ.6)GO TO 642
610	IP=MONEY(TPLYR)+ASSETS(TPLYR)
	TYPE 612,MONEY(TPLYR),ASSETS(TPLYR),IP
612	FORMAT(' CASH = $',I5,5X,'PROPERTY VALUE = $',I5/
	1' TOTAL ASSETS = $',I5)
614	IP=0
	DO 631 K=1,22
	IF(PROP(3,K).NE.TPLYR)GO TO 631
	MONOP=(K+3)/3
	IF(IP.NE.MONOP)TYPE 616
616	FORMAT(1X)
C618	FORMAT('+',1X)
	IP=MONOP
	IF(PROP(10,K).NE.0.OR.PROP(11,K).NE.0)GO TO 622
	TYPE 620,K,(ZSQRE(N,PROP(1,K)),N=1,3)
620	FORMAT(1X,I2,1X,3A5)
	GO TO 631
622	TYPE 623,K,(ZSQRE(N,PROP(1,K)),N=1,3)
623	FORMAT(1X,I2,1X,3A5,2X,$)
	IF(PROP(10,K).EQ.5)TYPE 625
625	FORMAT('+HOTEL')
	IF(PROP(10,K).NE.0.AND.PROP(10,K).NE.5)TYPE 627,PROP(10,K)
627	FORMAT('+',I1,' HOUSES')
	IF(PROP(11,K).EQ.1)TYPE 629
629	FORMAT('+MORTGAGED')
631	CONTINUE
	TYPE 616
	IF(TPLYR.NE.0.AND.NUMOTH(1,TPLYR).EQ.0.AND.
	1NUMOTH(2,TPLYR).EQ.0)GO TO 639
	DO 637 J=1,2
	DO 635 K=1,4
	IF(J.EQ.2.AND.K.EQ.3)GO TO 637
	IF(OTHPRP(J,1,K).NE.TPLYR)GO TO 635
	NAME=K*10-5
	IF(J.EQ.2)NAME=(K*4-1)*4
	IP=K+J*4+18
	IF(OTHPRP(J,2,K).EQ.0)GO TO 633
	TYPE 623,IP,(ZSQRE(N,NAME),N=1,3)
	TYPE 629
	GO TO 635
633	TYPE 620,IP,(ZSQRE(N,NAME),N=1,3)
635	CONTINUE
637	TYPE 616
	IF(MOD(NOJAIL(TPLYR),10).EQ.1)TYPE 638
	IF(NOJAIL(TPLYR).GE.10)TYPE 6385
638	FORMAT(' 29 GET OUT OF JAIL FREE CARD (CHANCE)')
6385	FORMAT(' 30 GET OUT OF JAIL FREE CARD (COMM.CHEST)')
	IF(NOJAIL(TPLYR).NE.0)TYPE 616
639	IF(F1.EQ.1)GO TO (300,302),X
	IF(F1.EQ.2)GO TO 405
	GO TO 111
642	DO 648 K=0,11
	IF(K.EQ.0)TYPE 644,(J,(ZSQRE(N,PROP(1,J)),N=1,3),
	1RNAME(PROP(3,J)),J=K+12,K+12)
	IF(K.EQ.11)TYPE 645,K,(ZSQRE(N,PROP(1,K)),N=1,3),
	1RNAME(PROP(3,K))
	IF(K.NE.0.AND.K.NE.11)TYPE 646,(J,(ZSQRE(N,PROP(1,J)),
	1N=1,3),RNAME(PROP(3,J)),J=K,K+12,12)
644	FORMAT(32X,I2,1X,3A5,' (',A5,')')
645	FORMAT(1X,I2,1X,3A5,' (',A5,')')
646	FORMAT(1X,I2,1X,3A5,' (',A5,')',5X,I2,1X,3A5,' (',
	1A5,')')
648	IF(MOD(K+1,3).EQ.0)TYPE 616
	DO 650 K=1,2
	OTHPRP(2,1,4)=K*10-5
	OTHPRP(2,2,4)=(K*4-1)*4
	TT(1)=K+22
	TT(2)=K+26
650	TYPE 646,(TT(J),(ZSQRE(N,OTHPRP(2,J,4)),N=1,3),
	1RNAME(OTHPRP(J,1,K)),J=1,2)
	DO 652 K=3,4
	TT(1)=K+22
652	TYPE 645,TT(1),(ZSQRE(N,K*10-5),N=1,3),
	1RNAME(OTHPRP(1,1,K))
	TYPE 616
	GO TO 639

CC	ACTION 13 COMPUTER MAKES TRADING OFFER
C660	J=2
C	DO 664 MONOP=8,2,-1
C	IF(MOWN(CMPUTR,MONOP).EQ.2.AND.MOWN(PLYR,MONOP).EQ.1)GO TO 669
C664	CONTINUE
C666	TYPE 667
C667	FORMAT(' SORRY, NO DEALS RIGHT NOW.')
C	GO TO 111
C669	DO 671 MONOP2=J,8
C	IF(MOWN(PLYR,MONOP2).EQ.2.AND.MOWN(CMPUTR,MONOP2).EQ.1)GO TO 673
C671	CONTINUE
C	GO TO 666
C673	TYPE 674
C674	FORMAT(' I''D MAKE A DEAL NOW, BUT I DON''T TRUST
C	1 MY TRADING ROUTINE YET.')
C	GO TO 111

CC	ACTION 13 MONOPOLY STATUS
690	DO 692 K=1,22
	IF(PROP(1,K).EQ.LOC(PLYR))GO TO 694
692	CONTINUE
	ZANS=FLOAT(LOC(PLYR))/5.
	IF(ZANS.EQ.AINT(ZANS).AND.ZANS/2..NE.AINT(ZANS/2.))GO TO 697
	IF(LOC(PLYR).EQ.12.OR.LOC(PLYR).EQ.28)GO TO 699
	TYPE 693
693	FORMAT(' YOU ARE NOT ON A MONOPOLY')
	GO TO 639
694	START=MAX0(K/3*3,1)
	FINISH=MIN0(K/3*3+2,22)
	DO 696 K=START,FINISH
	IF(PROP(10,K).NE.0.OR.PROP(11,K).NE.0)GO TO 695
	TYPE 6945,K,(ZSQRE(N,PROP(1,K)),N=1,3),RNAME(PROP(3,K))
6945	FORMAT(I3,1X,3A5,' (',A5,')')
	GO TO 696
695	TYPE 6955,K,(ZSQRE(N,PROP(1,K)),N=1,3),RNAME(PROP(3,K))
6955	FORMAT(I3,1X,3A5,' (',A5,') ',$)
	IF(PROP(10,K).EQ.5)TYPE 625
	IF(PROP(10,K).NE.0.AND.PROP(10,K).NE.5)TYPE 627,PROP(10,K)
	IF(PROP(11,K).EQ.1)TYPE 629
696	CONTINUE
	GO TO 6997
697	DO 698 K=23,26
	IF(OTHPRP(1,2,K-22).EQ.0)TYPE 6945,K,(ZSQRE(N,(K-23)*10+5),N=1,3)
	1,RNAME(OTHPRP(1,1,K-22))
	IF(OTHPRP(1,2,K-22).EQ.1)TYPE 6975,K,(ZSQRE(N,(K-23)*10+5),N=1,3)
	1,RNAME(OTHPRP(1,1,K-22))
6975	FORMAT(I3,1X,3A5,' (',A5,') MORTGAGED')
698	CONTINUE
	GO TO 6997
699	DO 6993 K=27,28
	IF(OTHPRP(2,2,K-26).EQ.0)TYPE 6945,K,(ZSQRE(N,(K-27)*16+12),N=1,3
	1),RNAME(OTHPRP(2,1,K-26))
	IF(OTHPRP(2,2,K-26).EQ.1)TYPE 6975,K,(ZSQRE(N,(K-27)*16+12),N=1,3
	1),RNAME(OTHPRP(2,1,K-26))
6993	CONTINUE
6997	TYPE 616
	GO TO 639

C	ACTION 3 TRADE MONEY OR PROPERTY
700	TYPE 701,RNAME(PLYR)
701	FORMAT(' ARE YOU (1) GIVING OR (2) RECEIVING, ',A5,'? ',$)
	ACCEPT 166,ANS
	IF(ANS.NE.1.AND.ANS.NE.2)GO TO 111
	TYPE 703
703	FORMAT(' IS (1) MONEY OR (2) PROPERTY TO CHANGE HANDS? ',$)
	ACCEPT 166,IANS
	IF(IANS.NE.1.AND.IANS.NE.2)GO TO 111
	IF(NOPLYR.GT.2)GO TO 707
	AA=1
	BB=2
	IF(ANS.NE.PLYR)GO TO 705
	GO TO (716,725),IANS
	GO TO 111
705	AA=2
	BB=1
	GO TO (716,725),IANS
	GO TO 111
707	DO 709 K=1,NOPLYR
709	IF(K.NE.PLYR)TYPE 710,K,RNAME(K)
710	FORMAT(1X,I1,1X,A5)
	IF(ANS.EQ.1)TYPE 712
	IF(ANS.EQ.2)TYPE 714
712	FORMAT(' WHAT PLAYER # IS RECEIVING THE GOODS? ',$)
714	FORMAT(' WHAT PLAYER # IS DONATING THE GOODS? ',$)
	ACCEPT 166,CHOICE
	IF(CHOICE.LT.1.OR.CHOICE.GT.NOPLYR)GO TO 111
	AA=PLYR
	IF(ANS.EQ.2)AA=CHOICE
	BB=CHOICE
	IF(ANS.EQ.2)BB=PLYR
	GO TO (716,725),IANS
	GO TO 111
CC	EXCH MONEY
716	TYPE 717
717	FORMAT(' HOW MUCH MONEY IS INVOLVED? $',$)
	ACCEPT 166,AMT
	IF(AMT.GT.0)GO TO 718
	TYPE 7175
7175	FORMAT(' MUST BE A POSITIVE AMOUNT')
	GO TO 111
718	IF(MONEY(AA).GE.AMT)GO TO 721
	TYPE 719,RNAME(AA)
719	FORMAT(1X,A5,' DOESN''T HAVE THAT MUCH')
	GO TO 111
721	IF(PLYR.EQ.AA)GO TO 723
	IF(NCNSNT(RNAME(AA)).EQ.0)GO TO 111
723	MONEY(AA)=MONEY(AA)-AMT
	MONEY(BB)=MONEY(BB)+AMT
	GO TO 111
CC	EXCH PROP
725	TYPE 726
726	FORMAT(' WHAT IS THE # OF THE PROP. INVOLVED? ',$)
	ACCEPT 166,IANS
	IF(IANS.LT.1.OR.IANS.GT.30)GO TO 111
	IF(PLYR.EQ.AA)GO TO 728
	IF(NCNSNT(RNAME(AA)).EQ.0)GO TO 111
728	IF(IANS.LT.29)GO TO 729
	IANS=(IANS-29)*9+1
	IF(IANS.NE.NOJAIL(AA).AND.NOJAIL(AA).NE.11)GO TO 732
	NOJAIL(AA)=NOJAIL(AA)-IANS
	NOJAIL(BB)=NOJAIL(BB)+IANS
	GO TO 747
729	CALL WHERTO(IANS,ANS)
	GO TO (741,741,730)ANS
	GO TO 111
730	IF(PROP(3,IANS).EQ.AA)GO TO 735
732	TYPE 733,RNAME(AA)
733	FORMAT(' THAT PROPERTY ISN''T OWNED BY ',A5)
	GO TO 111
735	IF(MCHECK(PLYR,IANS).EQ.1)GO TO 739
	TYPE 737
737	FORMAT(' PROPERTIES ON MONOPOLIES WITH HOUSES ARE NOT
	1 EXCHANGEABLE')
	GO TO 111
739	PROP(3,IANS)=BB
	ARENT=PROP(2,IANS)/(PROP(11,IANS)+1)
	N=ARENT-PROP(2,IANS)/2
	MONOP=(IANS+3)/3
	MOWN(AA,MONOP)=MOWN(AA,MONOP)-1
	MOWN(BB,MONOP)=MOWN(BB,MONOP)+1
	AMT=PROP(2,IANS)/2
	GO TO 742
741	IF(OTHPRP(ANS,1,IANS).NE.AA)GO TO 732
	OTHPRP(ANS,1,IANS)=BB
	ARENT=50*(5-ANS)/(OTHPRP(ANS,2,IANS)+1)
	N=ARENT-25*(5-ANS)
	NUMOTH(ANS,AA)=NUMOTH(ANS,AA)-1
	NUMOTH(ANS,BB)=NUMOTH(ANS,BB)+1
	AMT=25*(5-ANS)
742	ASSETS(AA)=ASSETS(AA)-ARENT
	ASSETS(BB)=ASSETS(BB)+ARENT
	MVALUE(AA)=MVALUE(AA)-N
	MVALUE(BB)=MVALUE(BB)+N
	IF((ANS.LT.3.AND.OTHPRP(ANS,2,IANS).EQ.0).OR.
	1(ANS.EQ.3.AND.PROP(11,IANS).EQ.0))GO TO 747
743	TYPE 744,RNAME(BB)
744	FORMAT(' TO ',A5,': PROPERTY IS MORTGAGED. UNMORTGAGE?'/
	1' (IF NOT, YOU PAY A 10% TRANSFERRAL TAX) ? ',$)
	IF(BB.NE.CMPUTR)GO TO 746
	CALL SLP(1000)
	ZANS='Y'
	TYPE 315,ZANS
	GO TO (872,872,864),ANS
746	ACCEPT 414,ZANS
	IF(ZANS.EQ.'Y')GO TO (872,872,864),ANS
	MONEY(BB)=MONEY(BB)-AMT/5
747	TYPE 748,RNAME(AA),RNAME(BB)
748	FORMAT(1X,A5,': GIVING ANY MORE PROPERTY TO ',A5,'? ',$)
	ACCEPT 414,ZANS
	IF(ZANS.EQ.'Y')GO TO 725
	GO TO 111

CC	ACTION 14 DISPLAY PROPERTY CARD
760	TYPE 762
762	FORMAT(' PROPERTY #',$)
	ACCEPT 166,IANS
	IF(IANS.GE.1.AND.IANS.LE.22)GO TO 770
	IF(IANS.GE.23.AND.IANS.LE.26)GO TO 776
	IF(IANS.NE.27.AND.IANS.NE.28)GO TO 639
	TYPE 764,IANS,(ZSQRE(N,(IANS-27)*16+12),N=1,3),RNAME(OTHPRP(2,1,
	1IANS-26))
764	FORMAT(I3,1X,3A5,' (',A5,')',10X,'PRICE $75'/' RENT IS FOUR TIMES
	1 ROLL IF ONE UTILITY IS OWNED,'/'  TEN TIMES ROLL IF BOTH.'/)
	GO TO 639
770	K=PROP(2,IANS)/2
	TYPE 772,IANS,(ZSQRE(N,PROP(1,IANS)),N=1,3),RNAME(PROP(3,IANS))
	TYPE 773,PROP(2,IANS),(PROP(N,IANS),N=4,9),K
772	FORMAT(I3,1X,3A5,' (',A5,')')
773	FORMAT(' PRICE $',I3,10X,'RENT $',I2/' WITH 1
	1 HOUSE  $',I4,10X,'WITH 2 HOUSES $',I4/' WITH 3 HOUSES $',I4,10X,
	1'WITH 4 HOUSES $',I4/' WITH HOTEL    $',I4,10X,'M
	2ORTGAGE VALUE $',I3/)
	GO TO 639
776	TYPE 778,IANS,(ZSQRE(N,(IANS-23)*10+5),N=1,3),RNAME(OTHPRP(1,1,
	1IANS-22))
778	FORMAT(I3,1X,3A5,' (',A5,')',10X,'PRICE $200'/' RENT WITH 1
	1 RR $ 25'/'      WITH 2 RR $ 50'/'      WITH 3 RR $100'/
	2'      WITH 4 RR $200'/)
	GO TO 639

C	ACTION 4 MORTGAGING PROPERTY
800	TYPE 801
801	FORMAT(' MORTGAGING PROPERTY #: ',$)
	IF(PLYR.NE.CMPUTR)GO TO 805
	CALL SLP(800)
	TYPE 803,IANS
803	FORMAT('+',I2)
	GO TO 807
805	ACCEPT 166,IANS
	IF(IANS.LT.1.OR.IANS.GT.28)GO TO 111
807	CALL WHERTO(IANS,ANS)
	GO TO (827,827,809),ANS
809	IF(PROP(3,IANS).EQ.PLYR)GO TO 814
811	TYPE 812
812	FORMAT(' THAT PROPERTY''S NOT YOURS')
	GO TO 111
814	IF(PROP(11,IANS).NE.1)GO TO 818
815	TYPE 816
816	FORMAT(' PROPERTY ALREADY MORTGAGED')
	GO TO 111
818	IF(MCHECK(PLYR,IANS).EQ.1)GO TO 823
	TYPE 821
821	FORMAT(' CANNOT BE MORTGAGED BEFORE HOUSES ARE SOLD')
	GO TO 111
823	PROP(11,IANS)=1
	AMT=PROP(2,IANS)/2
824	TYPE 825
825	FORMAT(' DONE.')
	MONEY(PLYR)=MONEY(PLYR)+AMT
	ASSETS(PLYR)=ASSETS(PLYR)-AMT
	MVALUE(PLYR)=MVALUE(PLYR)-AMT
	GO TO 111
827	IF(OTHPRP(ANS,1,IANS).NE.PLYR)GO TO 811
	IF(OTHPRP(ANS,2,IANS).EQ.1)GO TO 815
	OTHPRP(ANS,2,IANS)=1
	AMT=25*(5-ANS)
	GO TO 824

CC	ACTION 5 UNMORTGAGING PROPERTY
850	TYPE 851
851	FORMAT(' UNMORTGAGING PROPERTY #: ',$)
	IF(PLYR.NE.CMPUTR)GO TO 853
	CALL SLP(800)
	TYPE 803,IANS
	GO TO 855
853	ACCEPT 166,IANS
	IF(IANS.LT.1.OR.IANS.GT.28)GO TO 111
855	CALL WHERTO(IANS,ANS)
	BB=PLYR
	GO TO (870,870,860)ANS
860	IF(PROP(3,IANS).NE.PLYR)GO TO 811
	IF(PROP(11,IANS).EQ.1)GO TO 863
861	TYPE 862
862	FORMAT(' PROPERTY NOT MORTGAGED')
	GO TO 111
863	AMT=PROP(2,IANS)/2
864	PROP(11,IANS)=0
865	TYPE 825
	MONEY(BB)=MONEY(BB)-AMT*11/10
	ASSETS(BB)=ASSETS(BB)+AMT
	MVALUE(BB)=MVALUE(BB)+AMT
	GO TO 111
870	IF(OTHPRP(ANS,1,IANS).NE.PLYR)GO TO 811
	IF(OTHPRP(ANS,2,IANS).NE.1)GO TO 861
	AMT=25*(5-ANS)
872	OTHPRP(ANS,2,IANS)=0
	GO TO 865

CC	ACTION 6 GET OUT OF JAIL
890	IF(JAIL(PLYR).NE.0)GO TO 892
	TYPE 891
891	FORMAT(' BUT YOU''RE NOT IN JAIL!')
	GO TO 111
892	IF(NOJAIL(PLYR).EQ.0)GO TO 893
	CALL TURNIN(NOJAIL(PLYR))
	TYPE 194
	GO TO 898
893	MONEY(PLYR)=MONEY(PLYR)-50
	FRPARK=FRPARK+50
	TYPE 896
896	FORMAT(' $50 PAID -- YOU MAY MOVE THIS TURN')
898	JAIL(PLYR)=0
	GO TO 111

CC	ACTION 7 BUYING AND SELLING HOUSES AND HOTELS
900	TYPE 901
901	FORMAT(' TYPE THE # OF ANY PROPERTY IN THE MONOPOLY YOU WISH'/
	1' TO DEVELOP OR UNDEVELOP: ',$)
	IF(PLYR.NE.CMPUTR)GO TO 905
	IANS=CMONOP(3)
	IF(J.NE.0)GO TO 903
	X=1
	IF(ANS.EQ.2)X=-1
	CMONOP(3)=CMONOP(3)-X
	IF(MOD(CMONOP(5)+X,CMONOP(2)).EQ.0)CMONOP(3)=CMONOP(3)+
	1CMONOP(2)*X
903	CALL SLP(1000)
	TYPE 803,IANS
	GO TO 907
905	ACCEPT 166,IANS
	IF(IANS.LT.1.OR.IANS.GT.22)GO TO 111
907	MONOP=(IANS+3)/3
	IF(MOWN(PLYR,MONOP).EQ.3)GO TO 911
	TYPE 909
909	FORMAT(' YOU DON''T OWN THAT MONOPOLY')
	GO TO 111
911	START=MAX0((MONOP-1)*3,1)
	FINISH=MIN0((MONOP-1)*3+2,22)
	NOPROP=FINISH-START+1
	TSUB=0
	CHOICE=0
	DO 912 K=START,FINISH
	IF(PROP(11,K).EQ.1)GO TO 924
	TSUB=TSUB+PROP(10,K)
912	CHOICE=CHOICE+PROP(2,K)
	IF(TSUB.NE.0)GO TO 9125
	F1=0
	GO TO 920
9125	F1=CHOICE/2
	IF(TSUB.EQ.NOPROP*5.OR.MONEY(PLYR).LT.0)GO TO 960
913	TYPE 914
914	FORMAT(' ARE YOU (1) BUYING OR (2) SELLING HOUSES? ',$)
	IF(PLYR.NE.CMPUTR)GO TO 916
	CALL SLP(1000)
	TYPE 163,ANS
	GO TO (920,960),ANS
916	ACCEPT 166,ANS
	GO TO (920,960),ANS
	GO TO 111
920	ARENT=(MONOP+1)/2*50
	DO 922 K=START,FINISH
	IF(PROP(11,K).EQ.1)GO TO 924
922	CONTINUE
	GO TO 927
924	TYPE 925
925	FORMAT(' CAN''T DEVELOP - ONE OF THOSE PROPERTIES IS MORTGAGED')
	GO TO 111
927	TYPE 928,ARENT
928	FORMAT(' HOUSES ARE $',I3,' APIECE. 5 HOUSES MAKE A HOTEL.')
	TYPE 930,MONEY(PLYR)
930	FORMAT(' YOU HAVE $',I5,'. HOW MANY HOUSES ARE YOU BUYING FOR:')
	IP=IANS
	IANS=0
	DO 942 K=START,FINISH
	ANS=0
	TSUB=K-START+1
	IF(PROP(10,K).EQ.5)GO TO 937
932	TYPE 933,(ZSQRE(N,PROP(1,K)),N=1,3),PROP(10,K)
933	FORMAT(1X,3A5,'(NOW HAS ',I1,'): ',$)
	IF(PLYR.NE.CMPUTR)GO TO 935
	IF(K.EQ.IP)ANS=1
	IF(J.NE.0)ANS=J
	CALL SLP(1000)
	TYPE 163,ANS
	GO TO 937
935	ACCEPT 166,ANS
	IF(ANS.LT.0)GO TO 939
937	TNUM(TSUB)=PROP(10,K)+ANS
	IF(TNUM(TSUB).LE.5)GO TO 942
939	TYPE 940
940	FORMAT(' TOO MANY HOUSES TOTAL. TRY AGAIN')
	GO TO 932
942	IANS=IANS+ANS
	IF(PLYR.EQ.CMPUTR)CMONOP(5)=CMONOP(5)+IANS
	IF(LEGAL(NOPROP).EQ.0)GO TO (947,944),NOPROP-1
	GO TO 950
944	TYPE 945,(TNUM(N),N=1,3)
945	FORMAT(' ILLEGAL NUMBER OF HOUSES (',2(I1,','),I1,')')
	GO TO 111
947	TYPE 948,(TNUM(N),N=1,2)
948	FORMAT(' ILLEGAL NUMBER OF HOUSES (',I1,',',I1,')')
	GO TO 111
950	AMT=ARENT*IANS
	IF(MONEY(PLYR).GE.AMT)GO TO 954
	TYPE 952
952	FORMAT(' YOU DON''T HAVE ENOUGH MONEY')
	GO TO 111
954	MONEY(PLYR)=MONEY(PLYR)-AMT
	ASSETS(PLYR)=ASSETS(PLYR)+AMT
956	DO 957 K=START,FINISH
957	PROP(10,K)=TNUM(K-START+1)
	F2=0
	IF(MCHECK(PLYR,START).NE.1)F2=-CHOICE/2
	MVALUE(PLYR)=MVALUE(PLYR)+F1+F2
	GO TO 111

960	ARENT=(MONOP+1)/2*25
	DO 962 K=START,FINISH
	IF(PROP(10,K).NE.0)GO TO 966
962	CONTINUE
	TYPE 964
964	FORMAT(' NO HOUSES ON THAT MONOPOLY')
	GO TO 111
966	TYPE 967,ARENT
967	FORMAT(' YOU GET BACK $',I3,' PER HOUSE')
	TYPE 969
969	FORMAT(' HOW MANY HOUSES ARE YOU SELLING FROM:')
	IP=IANS
	IANS=0
	DO 980 K=START,FINISH
	ANS=0
	TSUB=K-START+1
	IF(PROP(10,K).EQ.0)GO TO 975
971	TYPE 933,(ZSQRE(N,PROP(1,K)),N=1,3),PROP(10,K)
	IF(PLYR.NE.CMPUTR)GO TO 973
	IF(K.EQ.IP)ANS=1
	IF(J.NE.0)ANS=J
	CALL SLP(1000)
	TYPE 163,ANS
	GO TO 975
973	ACCEPT 166,ANS
	IF(ANS.LT.0)GO TO 977
975	TNUM(TSUB)=PROP(10,K)-ANS
	IF(TNUM(TSUB).GE.0)GO TO 980
977	TYPE 978
978	FORMAT(' FEWER THAN ZERO LEFT. TRY AGAIN')
	GO TO 971
980	IANS=IANS+ANS
	IF(PLYR.EQ.CMPUTR)CMONOP(5)=CMONOP(5)-IANS
	IF(LEGAL(NOPROP).EQ.0)GO TO (947,944),NOPROP-1
	AMT=ARENT*IANS
	MONEY(PLYR)=MONEY(PLYR)+AMT
	ASSETS(PLYR)=ASSETS(PLYR)-AMT*2
	GO TO 956

CC	ACTION 8 QUITTING
990	TYPE 991,RNAME(PLYR)
991	FORMAT(' YOU QUIT, ',A5,'?',$)
	ACCEPT 414,ZANS
	IF(ZANS.NE.'Y')GO TO 111
993	IF(PLYR.EQ.CMPUTR)CMPUTR=1
	CMPUTR=CMPUTR-1
	CALL TURNIN(NOJAIL(PLYR))
	CALL TURNIN(NOJAIL(PLYR))
	IF(PLYR.EQ.NOPLYR)GO TO 997
	DO 995 K=PLYR,NOPLYR-1
	LOC(K)=LOC(K+1)
	MONEY(K)=MONEY(K+1)
	MVALUE(K)=MVALUE(K+1)
	AUTPIL(K)=AUTPIL(K+1)
	ASSETS(K)=ASSETS(K+1)
	RNAME(K)=RNAME(K+1)
	JAIL(K)=JAIL(K+1)
	NOJAIL(K)=NOJAIL(K+1)
	NUMOTH(1,K)=NUMOTH(1,K+1)
	NUMOTH(2,K)=NUMOTH(2,K+1)
	DO 995 J=1,8
995	MOWN(K,J)=MOWN(K+1,J)
997	NOPLYR=NOPLYR-1
	DO 998 K=1,22
	IF(PROP(3,K).LT.PLYR)GO TO 998
	IF(PROP(3,K).EQ.PLYR)PROP(3,K)=1
	PROP(3,K)=PROP(3,K)-1
	IF(PROP(3,K).NE.0)GO TO 998
	PROP(10,K)=0
	PROP(11,K)=0
998	CONTINUE
	DO 999 J=1,2
	DO 999 K=1,4
	IF(OTHPRP(J,1,K).LT.PLYR)GO TO 999
	IF(OTHPRP(J,1,K).EQ.PLYR)OTHPRP(J,1,K)=1
	OTHPRP(J,1,K)=OTHPRP(J,1,K)-1
	IF(OTHPRP(J,1,K).EQ.0)OTHPRP(J,2,K)=0
999	CONTINUE
	DOUBLE=0
	TIMER=1
	PLYR=PLYR-1
	IF(NOPLYR.GT.1)GO TO 100
1000	TYPE 1001,RNAME(1)
1001	FORMAT(/' YOU WIN, ',A5)
	STOP

	END


	SUBROUTINE PASSGO(IPLYR,LCT,MONY)
	LCT=LCT-40
	TYPE 10
10	FORMAT(' YOU PASS GO AND COLLECT $200 ')
	MONY=MONY+200
	RETURN
	END


	SUBROUTINE TURNIN(NJL)
	IMPLICIT INTEGER (C)
	COMMON CARDS(2,16)
	IF(NJL.EQ.1)CARDS(1,16)=1
	IF(NJL.GE.10)CARDS(2,16)=1
	NJL=NJL/11
	RETURN
	END

	SUBROUTINE WHERTO(INPROP,JANS)
	JANS=0
	IF(INPROP.GE.23.AND.INPROP.LE.26)JANS=1
	IF(INPROP.EQ.27.OR.INPROP.EQ.28)JANS=2
	IF(INPROP.GE.1.AND.INPROP.LE.22)JANS=3
	IF(INPROP.GE.23)INPROP=INPROP-26
	IF(INPROP.LE.0)INPROP=INPROP+4
	RETURN
	END

	FUNCTION LEGAL(NPR)
	IMPLICIT INTEGER (T)
	COMMON/L/TNUM(3)
	LEGAL=0
	T1=IABS(TNUM(1)-TNUM(2))
	IF(T1.LE.1.AND.NPR.EQ.2)LEGAL=1
	T2=IABS(TNUM(2)-TNUM(3))
	T3=IABS(TNUM(1)-TNUM(3))
	IF(T1.LE.1.AND.T2.LE.1.AND.T3.LE.1)LEGAL=1
	RETURN
	END

	FUNCTION NCNSNT(ARG)
	NCNSNT=0
	TYPE 10,ARG
10	FORMAT(' DO YOU AGREE WITH THIS, ',A5,'? ',$)
	IF(ARG.NE.'PDP10')GO TO 20
	ANS='N'
	CALL SLP(1000)
	TYPE 15,ANS
15	FORMAT('+',A1)
	GO TO 30
20	ACCEPT 25,ANS
25	FORMAT(A1)
30	IF(ANS.EQ.'Y')NCNSNT=1
	RETURN
	END

	SUBROUTINE MONCOM(MONOP)
	COMMON/M/MOWN(5,8),NMONOP(6),MACHIN
	IF(NMONOP(1).EQ.1.OR.MOWN(MACHIN,MONOP).NE.3)RETURN
	NMONOP(1)=1
	NMONOP(2)=3
	IF(MONOP.EQ.1.OR.MONOP.EQ.8)NMONOP(2)=2
	NMONOP(3)=MONOP*3-1
	IF(NMONOP(3).EQ.23)NMONOP(3)=22
	NMONOP(4)=(MONOP+1)/2*50
	RETURN
	END

	FUNCTION MCHECK(IPLYR,KPROP)
	COMMON/M/MOWN(5,8)/K/IPROP(11,22)
	MCHECK=1
	MONOP=(KPROP+3)/3
	IF(MOWN(IPLYR,MONOP).NE.3)RETURN
	IST=(MONOP-1)*3
	IFN=IST+2
	IF(IST.EQ.0)IST=1
	IF(IFN.EQ.23)IFN=22
	DO 10 K=IST,IFN
	IF(IPROP(10,K).NE.0)GO TO 20
10	CONTINUE
	RETURN
20	MCHECK=0
	RETURN
	END

	SUBROUTINE BUYSELL
	COMMON/M/MOWN(5,8),NMONOP(6)
	MONOP=(NMONOP(3)+3)/3
	NMONOP(3)=NMONOP(3)+NMONOP(6)
	IF((NMONOP(3)+3)/3.NE.MONOP.OR.NMONOP(3).EQ.23.OR.
	1NMONOP(3).EQ.0)NMONOP(3)=NMONOP(3)-NMONOP(2)*NMONOP(6)
	NMONOP(6)=0-NMONOP(6)
	RETURN
	END